#ifndef TICKCOUNTRUNNABLEFACTORY_HPP
#define TICKCOUNTRUNNABLEFACTORY_HPP

#include <QtCore/QRunnable>

#include "tickcountrunnable.hpp"

#ifdef _WIN32 // Windows 32 Includes
#include "tickcountrunnablewin.hpp"
#endif

#ifdef linux // Linux Includes
#include "tickcountrunnableunix.hpp"
#endif


/**
 * @brief Factory class producing native TickCount Runnables for unix / win
 * @details This class provides a static factory method to generate the TickCount Runnables
 * This will create a \ref TickCountRunnableWin under Windows and a \ref TickCountRunnableUnix on Unix
 *
 * @see TickCountRunnableWin
 * @see TickCountRunnableUnix
 *
 * @class TickCountRunnableFactory tickcountrunnablefactory.hpp "tickcountrunnablefactory.hpp"
*/
class TickCountRunnableFactory
{
public:
    /**
     * @brief Factory method to create the native Runnables
     *
     * @see TickCountRunnableWin
     * @see TickCountRunnableUnix
     *
     * @fn getNativeTickCountRunner
     * @return TickCountRunnable *
    */
    static TickCountRunnable *getNativeTickCountRunner();
};

#endif // TICKCOUNTRUNNABLEFACTORY_HPP
